package com.ztrue.framework.handler;


/**
 * 表示一个找不到处理器定义异常
 *
 * @author zhangw
 * @date 2016/11/14 12:02
 * @version: 1.0
 */
public class NoSuchHandlerDefinitionException extends HandlerException {
    /**
     * 处理器名称
     */
    private String handlerName;
    /**
     * 处理器类型
     */
    private Class handlerType;

    /**
     * 初始化一个找不到处理器定义异常
     *
     * @param type 处理器类型
     * @param msg  异常消息
     */
    public NoSuchHandlerDefinitionException(Class type, String msg) {
        super(msg);
        this.handlerType = type;
    }

    /**
     * 初始化一个找不到处理器定义异常
     *
     * @param handlerName 处理器名称
     */
    public NoSuchHandlerDefinitionException(String handlerName) {
        super(String.format("无法找到名为[%s]的处理器定义", handlerName));
        this.handlerName = handlerName;
    }

    /**
     * 初始化一个找不到处理器定义异常
     *
     * @param type 处理器类型
     */
    public NoSuchHandlerDefinitionException(Class type) {
        super(String.format("未找到类型为[%s]的处理器定义", type.toString()));
        this.handlerType = type;
    }

    /**
     * 初始化一个找不到处理器定义异常
     *
     * @param handlerName 处理器名称
     * @param type        处理器类型
     */
    public NoSuchHandlerDefinitionException(String handlerName, Class type) {
        super(String.format("未找到类型为[%s]的可用处理器[%s]", type.toString(), handlerName));
        this.handlerName = handlerName;
        this.handlerType = type;
    }

    /**
     * 获取处理器名称
     *
     * @return
     */
    public String getHandlerName() {
        return handlerName;
    }

    /**
     * 获取处理器类型
     *
     * @return
     */
    public Class getHandlerType() {
        return handlerType;
    }

    /**
     * 获取查找到的处理器数量
     *
     * @return
     */
    public int getNumberOfHandlerFound() {
        return 0;
    }
}
